const datetime = require('../../moduls/datetime')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    navIndex: 1,    //用于控制导航项颜色的显示，表单的显示
    date: '',       //picker显示的日期
    maxDate: '',    // picker可选择的最大日期
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let date = datetime.format.date(new Date())
    this.setData({
      date,
      maxDate: date
    })
  },
  // 导航项的tap事件处理程序
  onNavItem(event) {
    let index = event.currentTarget.dataset.index
    this.setData({ navIndex: index * 1 })
  },
  // picker组件change事件处理程序
  bindDateChange(event) {
    this.setData({
      date: event.detail.value
    })
  },
  // 纪念日表单提交事件处理程序
  async onAnniversary(event) {
    let formData = event.detail.value
    formData.isBirthday = false
    // 数据校验
    if(!/^.{2,}$/.test(formData.name)) {
      wx.showToast({
        title: '请输入纪念内容',
        icon: 'none'
      })
      return 
    }
    // 数据保存到云数据库中 -- 云函数方式
    try {
      let res = await wx.cloud.callFunction({
        name: 'days',
        data: {data: formData}
      })
      wx.showToast({
        title: '添加成功'
      })
    } catch (e) {
      wx.showToast({
        title: '添加失败',
        icon: 'none'
      })
    }
  },
  // 生日表单提交事件处理程序
  async onBirthday(event) {
    let formData = event.detail.value
    formData.isBirthday = true
    // 数据校验
    if(!/^.{2,}$/.test(formData.name)) {
      wx.showToast({
        title: '请正确填写寿星姓名',
        icon: 'none'
      })
      return 
    }
    // 数据保存到云数据库中
    // 1. （初始化）获取当前环境中的云数据库的引用
    const db = wx.cloud.database()
    // 2. 获取days集合的引用
    let days = db.collection('days')
    // 3. 插入数据
    // 1> 回调函数
    // days.add({
    //   data: formData,
    //   success: function(res) {
    //     console.log(res)
    //   },
    //   fail: function(err) {
    //     wx.showToast({
    //       title: '插入数据失败，稍后重试!',
    //       icon: 'none'
    //     })
    //   }
    // })
    // 2> promise风格
    // days.add({
    //   data: formData
    // }).then(res => {
    //   console.log(res)
    // }, err => {
    //   wx.showToast({
    //     title: '插入数据失败，稍后重试!',
    //     icon: 'none'
    //   })
    // })
    // 3> asycn / await 
    try {
       let res = await days.add({
          data: formData
       })
        wx.showToast({
          title: '添加成功',
        })
    } catch (err) {
        wx.showToast({
        title: '添加失败',
        icon: 'none'
      })
    }
  },
  
})